import { Route } from '@/types';
import { parseDate } from '@/utils/parse-date';
import parser from '@/utils/rss-parser';

import { rootUrl, rootRSSUrl, title, categories, getInfo, processItems } from './util';

export const route: Route = {
    path: '/cid/:id?',
    name: '更多分类',
    parameters: { id: '分类，见下表，留空为直播' },
    example: '/mydrivers/cid/2',
    maintainers: ['nczitzk'],
    handler,
    url: 'm.mydrivers.com/',
    radar: [
        {
            source: ['m.mydrivers.com/'],
            target: '/zhibo',
        },
    ],
    description: `::: details 更多分类

| 电脑配件 | 手机之家 | 家用电器 | 网络设备 | 办公外设 | 游戏之家 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| cid/2    | cid/3    | cid/4    | cid/5    | cid/6    | cid/7    |

| 电脑软件 | 业内动向 | 品牌整机 | 其它资讯 | 显卡   | CPU    |
| -------- | -------- | -------- | -------- | ------ | ------ |
| cid/8    | cid/9    | cid/10   | cid/11   | cid/12 | cid/13 |

| 主板   | 内存   | 硬盘   | 机箱   | 电源   | 散热器 |
| ------ | ------ | ------ | ------ | ------ | ------ |
| cid/14 | cid/15 | cid/16 | cid/17 | cid/18 | cid/19 |

| 光驱   | 声卡   | 键鼠   | 音箱   | 手机厂商 | 手机配件 |
| ------ | ------ | ------ | ------ | -------- | -------- |
| cid/20 | cid/21 | cid/22 | cid/23 | cid/24   | cid/25   |

| PDA    | MP3/MP4 | 摄像机 | 数码相机 | 摄像头 | 数码配件 |
| ------ | ------- | ------ | -------- | ------ | -------- |
| cid/26 | cid/27  | cid/29 | cid/30   | cid/31 | cid/32   |

| 电子书 | 导航产品 | 录音笔 | 交换机 | 路由器 | 防火墙 |
| ------ | -------- | ------ | ------ | ------ | ------ |
| cid/33 | cid/34   | cid/35 | cid/37 | cid/38 | cid/40 |

| 网卡   | 网络存储 | UPS    | 打印机 | 复印机 | 复合机 |
| ------ | -------- | ------ | ------ | ------ | ------ |
| cid/41 | cid/43   | cid/44 | cid/45 | cid/46 | cid/47 |

| 投影仪 | 扫描仪 | 传真机 | 电脑游戏 | 主机游戏 | 游戏主机 |
| ------ | ------ | ------ | -------- | -------- | -------- |
| cid/48 | cid/49 | cid/51 | cid/52   | cid/53   | cid/54   |

| 掌机游戏 | 电脑驱动 | 桌面系统 | 视点人物 | 数据报告 | 科技前沿 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| cid/55   | cid/57   | cid/58   | cid/62   | cid/63   | cid/65   |

| 笔记本 | 台式机 | 服务器 | 一体机 | 其他   | PC硬件 |
| ------ | ------ | ------ | ------ | ------ | ------ |
| cid/66 | cid/67 | cid/68 | cid/69 | cid/73 | cid/74 |

| 时尚数码 | 软件驱动 | 显示器 | 音箱耳机 | 投影机  | 便携机  |
| -------- | -------- | ------ | -------- | ------- | ------- |
| cid/78   | cid/79   | cid/80 | cid/92   | cid/100 | cid/108 |

| 手机    | MP3     | MP4     | 闪存盘  | DV摄像机 | U盘     |
| ------- | ------- | ------- | ------- | -------- | ------- |
| cid/109 | cid/112 | cid/113 | cid/114 | cid/115  | cid/116 |

| GPS     | 移动硬盘 | 操作系统 | 驱动    | 软件    | 软件更新 |
| ------- | -------- | -------- | ------- | ------- | -------- |
| cid/117 | cid/119  | cid/120  | cid/121 | cid/122 | cid/123  |

| 新软推荐 | 业界动态 | 软件评测 | 软件技巧 | 游戏相关 | 驱动研究 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| cid/124  | cid/125  | cid/126  | cid/127  | cid/128  | cid/130  |

| 游戏试玩 | 硬件学堂 | 实用技巧 | 新软体验 | 资讯教程 | 软件横评 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| cid/131  | cid/132  | cid/133  | cid/134  | cid/135  | cid/136  |

| Windows | Mac     | Linux   | 其它    | 使用技巧 | 深入研究 |
| ------- | ------- | ------- | ------- | -------- | -------- |
| cid/137 | cid/138 | cid/139 | cid/140 | cid/141  | cid/142  |

| 游戏机  | 显示    | 存储    | 音频    | 外设    | 数码    |
| ------- | ------- | ------- | ------- | ------- | ------- |
| cid/144 | cid/145 | cid/146 | cid/147 | cid/148 | cid/151 |

| 网络    | 办公    | 维修    | 安全    | 聊天    | 影音    |
| ------- | ------- | ------- | ------- | ------- | ------- |
| cid/152 | cid/154 | cid/155 | cid/156 | cid/157 | cid/158 |

| 国内    | 国外    | 办公应用 | 设计创意 | 基础知识 | 程序    |
| ------- | ------- | -------- | -------- | -------- | ------- |
| cid/159 | cid/160 | cid/161  | cid/162  | cid/163  | cid/164 |

| 其他硬件 | 电视卡/盒 | 游戏体验 | 平板电视 | 企业动态 | 天文航天 |
| -------- | --------- | -------- | -------- | -------- | -------- |
| cid/166  | cid/170   | cid/172  | cid/173  | cid/174  | cid/175  |

| MID设备 | 数码相框 | 耳机    | 通讯运营商 | 电视盒  | 线材线缆 |
| ------- | -------- | ------- | ---------- | ------- | -------- |
| cid/176 | cid/177  | cid/179 | cid/180    | cid/182 | cid/183  |

| 小家电  | 网络游戏 | 行情信息 | 科学动态 | 生物世界 | 历史考古 |
| ------- | -------- | -------- | -------- | -------- | -------- |
| cid/184 | cid/186  | cid/188  | cid/192  | cid/193  | cid/194  |

| 生科医学 | 地理自然 | 工程建筑 | 苹果手机 | 谷歌Android | 塞班手机 |
| -------- | -------- | -------- | -------- | ----------- | -------- |
| cid/195  | cid/196  | cid/197  | cid/201  | cid/202     | cid/203  |

| 黑莓手机 | 微软手机 | 移动处理器 | 山寨机  | 手机游戏 | 安卓应用 |
| -------- | -------- | ---------- | ------- | -------- | -------- |
| cid/204  | cid/205  | cid/206    | cid/208 | cid/209  | cid/210  |

| 娱乐生活 | 明星全接触 | 电影影讯 | 电视节目 | 音乐戏曲 | 国际风云 |
| -------- | ---------- | -------- | -------- | -------- | -------- |
| cid/212  | cid/213    | cid/214  | cid/215  | cid/216  | cid/217  |

| 国内传真 | 社会民生 | 生活百态 | 医药健康 | 家居尚品 | 星座旅游 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| cid/218  | cid/219  | cid/220  | cid/221  | cid/222  | cid/223  |

| 评论分析 | 体育竞技 | IT八卦  | 科技动态 | 游戏动态 | 手机系统 |
| -------- | -------- | ------- | -------- | -------- | -------- |
| cid/224  | cid/225  | cid/226 | cid/227  | cid/228  | cid/232  |

| 智能设备 | 生活电器 | 汽车相关 | 飞机航空 | 手机周边 | 网络运营商 |
| -------- | -------- | -------- | -------- | -------- | ---------- |
| cid/233  | cid/234  | cid/235  | cid/236  | cid/237  | cid/238    |

| 平板电脑 | 苹果iPad | 安卓平板 | Windows平板 | 创业路上 | 网友热议 |
| -------- | -------- | -------- | ----------- | -------- | -------- |
| cid/239  | cid/240  | cid/241  | cid/242     | cid/243  | cid/244  |

| IT圈    | 数码周边 | 智能手环 | 智能眼镜 | 智能手表 | iOS应用 |
| ------- | -------- | -------- | -------- | -------- | ------- |
| cid/246 | cid/247  | cid/248  | cid/249  | cid/250  | cid/251 |

| 壁纸主题 | 游戏厂商 | 数理化学 | 科普知识 | 奇趣探险 | 汽车世界 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| cid/252  | cid/253  | cid/254  | cid/255  | cid/256  | cid/257  |

| 传统汽车 | 电动汽车 | 新能源汽车 | 无人驾驶汽车 | 车载系统 | 车载配件 |
| -------- | -------- | ---------- | ------------ | -------- | -------- |
| cid/258  | cid/259  | cid/260    | cid/261      | cid/262  | cid/263  |

| 汽车厂商 | 影音动漫 | 精彩影视 | 电影动画 | 艺术设计 | 摄影达人 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| cid/264  | cid/265  | cid/266  | cid/267  | cid/269  | cid/270  |

| 固件    | 样张赏析 | 创意摄影 | WP应用  | 教育未来 | 安卓手机 |
| ------- | -------- | -------- | ------- | -------- | -------- |
| cid/272 | cid/273  | cid/274  | cid/284 | cid/285  | cid/288  |

| 智能穿戴 | 移动应用 | 电子竞技 | 游戏八卦 | 游戏评测 | 生活百科 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| cid/290  | cid/292  | cid/297  | cid/298  | cid/299  | cid/301  |

| 智能家居 | 智能插座 | 智能摄像头 | 智能路由器 | 智能体重秤 | 智能血压计 |
| -------- | -------- | ---------- | ---------- | ---------- | ---------- |
| cid/302  | cid/303  | cid/304    | cid/305    | cid/306    | cid/307    |

| 空气净化器 | 智能净水器 | 电动两轮车 | 公司财报 | 智能行车记录仪 | 网络影视 |
| ---------- | ---------- | ---------- | -------- | -------------- | -------- |
| cid/308    | cid/309    | cid/310    | cid/311  | cid/312        | cid/313  |

| 多轴无人机 | 摩托车  | 自行车  | 共享经济 | 生活周边 | 网络安全 |
| ---------- | ------- | ------- | -------- | -------- | -------- |
| cid/314    | cid/316 | cid/317 | cid/320  | cid/321  | cid/322  |

| 考勤机  | 网络红人 | 火车高铁 | 机器人  | 其他网络 | 快递物流 |
| ------- | -------- | -------- | ------- | -------- | -------- |
| cid/323 | cid/324  | cid/325  | cid/326 | cid/327  | cid/328  |

| 科技资讯 | 好货推荐 | 日常用品 | 餐饮零食 | 化妆品  | 运动健康 |
| -------- | -------- | -------- | -------- | ------- | -------- |
| cid/329  | cid/334  | cid/335  | cid/336  | cid/339 | cid/340  |

| 酒水饮料 | 个人洗护 | 电子产品 | 服装鞋帽 | 会员卡  | 用户投稿 |
| -------- | -------- | -------- | -------- | ------- | -------- |
| cid/341  | cid/342  | cid/343  | cid/345  | cid/346 | cid/351  |

| APP投稿 | PC投稿  | 视频快讯 | 新品开箱 | 技巧教程 | 科技快讯 |
| ------- | ------- | -------- | -------- | -------- | -------- |
| cid/352 | cid/353 | cid/354  | cid/355  | cid/356  | cid/357  |

| 产品评测 | 人物专访 | 会议活动 | 数码影音 | 数码影像 | 游戏周边 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| cid/358  | cid/359  | cid/360  | cid/361  | cid/362  | cid/368  |

| 汽车周边 | 个人交通 | 其他交通 |
| -------- | -------- | -------- |
| cid/369  | cid/370  | cid/371  |

:::`,
};

async function handler(ctx) {
    const id = ctx.req.param('id');
    const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 100;

    const queryString = id ? `?cid=${id}` : '';
    const currentUrl = new URL(id ? `newsclass.aspx${queryString}` : '', rootUrl).href;

    const rssUrl = new URL(`rss.aspx${queryString}`, rootRSSUrl).href;

    const feed = await parser.parseURL(rssUrl);

    let items = feed.items.slice(0, limit).map((item) => ({
        title: item.title,
        link: item.link,
        description: item.content,
        author: item.creator,
        category: item.categories,
        guid: item.guid.match(/\/(\d+)\.htm/)[1],
        pubDate: parseDate(item.isoDate),
    }));

    if (id) {
        items = await processItems(items);
    }

    return {
        ...(await getInfo(currentUrl)),

        item: items,
        title: `${title} - ${feed.title.split(/_/).pop() || categories.zhibo}`,
    };
}
